perm filename HOW[D,LES] blob
sn#343691 filedate 1978-03-21 generic text, type C, neo UTF8
COMMENT ā VALID 00011 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 LESCAL Calendar-maker. Dec. 1974
C00004 00003 FINGER Locates people on the system or tells when they last ran. Jan.'78
C00011 00004 KWIC Keyword in context program Dec. 1973
C00018 00005 FREEFO Text macro processor March 1973
C00020 00006 SOB Son of Bureaucracy (computer time accounting) Jan. 1978
C00024 00007 BUREAU Computer time accounting (old style) Oct. 1975
C00031 00008 XGPTYP Converts XGP file to text form Dec. 1975
C00032 00009 PARRY A model paranoid Sept. 1977
C00033 00010 RSL Service Level Reservations
C00034 00011 COOL Summarizes temperature & computer uptime. Jan. 1978
C00039 ENDMK
Cā;
LESCAL Calendar-maker. Dec. 1974
A program for printing or typing calendars in any of 63 formats. To run, say
"R LESCAL" and answer the questions.
Documentation: self-documented, with a sprinkling of political commentary.
Programmer: LES
Source file: LESCAL.MAC[CSP,SYS] (written in MACRO-10 before FAIL was invented).
FINGER Locates people on the system or tells when they last ran. Jan.'78
Programmer: LES
Source file: FINGER.SAI[F,ACT]
NETWORK FINGER
A FINGER command containing %<site name> will now attempt to finger people
at other Arpanet sites. It does this by connecting to the FINGER socket
at the specified site and passing the rest of whatever you typed (before
and after the "%<site name>" to the host. If that host supports Network
Finger, then you get whatever they return.
For example, "FING TK%AI" tells you about Tom Knight at MIT-AI and
"FING %SRI" tells you about everyone who is running on SRI-KL. At this
writing, only the following sites respond to a network FINGER:
all MIT ITS sites (ai, mc, ml, dm), sri-kl, sri-ka, and office-1.
More will be joining shortly.
Normally only one site can be specified in a single FINGER command, but if
you would like to waste some time, say "FING %*" and it will tell you
about everyone out there.
DOMESTIC FINGER
The system command "FING" shows data on all jobs, in order by programmer
initials. The "IDLE" column shows the time, in minutes, since the given
job was last in the RUN queue. If the job is currently in the STOP or
NULL queues, a "." follows.
If there is a digit in the next column, it represents the number of extra
Data Disc channels that belong to this job.
Finally, the "Terminal" part shows the location of the owner (the terminal
that last typed something at this job). "detached", of course means just
that. "disowned" means that the terminal that last owned this line has
released it. "TV" means that this is a television (Data Disc) terminal
that is displaying the channel currently. "tv" means that the terminal
that owns this job isn't looking at it.
If terminals other than the owner are viewing this job's main channel,
then they are listed on subsequent lines, with the job field blank. If
you want to know the TTY# rather than the physical terminal, use WHERE or
WHO rather than FINGER.
POINTING THE FINGER
The command "FING <people list>" shows data only on the specified people.
For example, "FING JMC,DAVE,WILL" requests information on programmer JMC
and anyone whose first or last name begins with "DAVE" or "WILL".
String matching uses the following precedence:
1) exact match on programmer initials,
2) exact match on friendly or last names,
3) match on leading characters of friendly or last names.
If a given string matches more than one person at a given level, it
reports "ambiguous" and lists their names.
If only one person is specified and he is not logged in, it normally tells
when he last logged out and shows his plan file, if any, but this can be
suppressed with switches (see below).
FILE LISTS
Arguments in the FINGER command are separated by commas and/or spaces.
An argument of the form "@<file name>" causes that file to be read.
Files can include references to other files, ad nauseum. In files,
everything to the right of a semicolon on a given line is ignored,
so that comments can be put there.
The default file extension is "DIS" and the default PPN is "[P,DOC]".
Thus if you say "FING @H", it will first look for a file in you area
called "H". If that doesn't exist, it will next try "H.DIS" in your
area and, if necessary, "H.DIS[P,DOC]", the latter being the list of
hand-eye people which is kept in [P,DOC] along with other group lists
(see SAIL Telephone Directory).
SWITCHES
Normally, if only one person is specified in the FINGER command and he is
not logged in, the time of his last logout and plan file, if any, are
given. This printout can be suppressed by using the "-LOGOUT" or "-PLAN"
You can force printing of last logout or plan files even for lists of
people by using the "/LOGOUT" or "/PLAN" switches, which can also be
abbreviated to one letter. Thus "FING @VB/L" lists everyone on the
volleyball list who is logged in and, for the rest, the time of their
last logout.
DOCUMENTATION
The command "FINGER ?" will cause this description to be printed out.
KWIC Keyword in context program Dec. 1973
Programmer: LES
Source file: KWIC.SAI[S,LES]
This program can be used to produce a concordance, index, word count, or
word list for any given text file. To run, say "R KWIC". The simplest
command that it understands is:
*<source file name>
This causes the source file to be scanned for words, which are
compared with an internal dictionary of common words. Any that are
not in the dictionary are considered to be "keywords". The program
produces an output file, in this case called <source>.KWC, that
contains an alphabetized list of keywords, one per line, together
with the local context and a reference to the page and line on which
they occur. It also lists the number of occurrences of each
dictionary word. A typical output might begin as follows.
Concordance of SIGNUP[W,LES]
275 keywords, 961 dictionary words
47 a
5 about
Page Line ------
5 22 A roll of adhesive tape or electrical tape.
6 after
Page Line ------
1 30 August 16 at noon in the AI Conference Room.
2 air(s)(ed)(ing)
3 all
Page Line ------
3 15 If you come to an ambiguous fork in the trail, preferably
1 among
......
Numbers appearing just to the left of center are word counts for
dictionary words (with various suffixes), while the page and line
numbers point to the locations of keywords in the original document.
Line numbers are counted from the top of the page. SOS line numbers
(if any) are ignored, as are TV/E directory pages, though the page
numbering includes the directory. Words beginning with different
letters of the alphabet are placed on different output pages.
General Command Format
The more general command format is:
*[<output file>ā]<source file>[/ONLY | /ALL][/INDEX | /COUNT | /LIST]
where bracketed elements are optional and alternative switches are
separated by "|". Both source and output files must be on the disk.
All switches may be abbreviated to one letter. The /ONLY switch
causes only keywords to be listed in the output file (i.e. omitting
counts of dictionary words). The /ALL switch causes the dictionary
to be ignored, so ALL words are treated as keywords. (Beware: a
concordance produced with the ALL switch on is typically about 10
times the size of the original document.
The /INDEX switch causes the context to be omitted and produces a
three-column listing of words and their original locations (page and
line) or number of occurrences (dictionary words). The /COUNT switch
causes word counts only to be generated for keywords and produces a
four-column listing of these counts. The /LIST switch produces a
raw, seething word list (i.e. an alphabetized list of all words
used), one per line, with no header information, and all on one long
page.
Scanning Procedure
KWIC treats as a word any alphanumeric string beginning with a letter
and possibly containing "'", "-", or "/", but nothing else. Thus,
things beginning with digits are ignored. Words hyphenated over line
boundaries are reassembled.
In order to provide as much context as possible for each keyword, the
text is "dejustified" within each paragraph, so that redundant spaces
between words are removed and successive lines are concatenated, with
a <space> replacing the <CRLF>. A new paragraph is assumed to begin
whenever there is a blank line, a <TAB> in column 1, or a <form
feed>.
FREEFO Text macro processor March 1973
Programmer: LES
Source file: FREEFO.LES[UP,DOC]
Documentation: FREEFO.LES[UP,DOC]
Freeforol is a text macro processor that can be used to generate form
letters and other fill-in-the-blanks text. If you say R FREEFO, it
types a "*" and expects a keyboard input of the form
<source file list>
or
<destination file>ā<source file list>
where the <source file list> consists of one or more file names
separated by commas. These must be text files and will be
effectively concatenated in the order given.
SOB Son of Bureaucracy (computer time accounting) Jan. 1978
Programmer: LES
Source File: SOB.SAI[F,ACT]
To get a summary of computer usage by project, just type <carriage
return>. This lists projects in order of decreasing "doubloons" (a
linear function of computer cost components on a somewhat arbitrary
scale).
In calculating this cost, "B time" charges (weekday mornings and
evenings, weekend afternoons) are reduced by a factor of 2 and "C time"
is reduced a factor of 3. The doubloon cost is also shown as a percentage
of overall computer utilization (excluding system services such as
spooling, accounting, and news service).
Next, the number of logins is given and the percentage of A time, B time,
and C time, based on the doubloon calculation with no discounting.
The last three items are the average core size, CPU utilization (CPU time/
job time), and load average while computing.
There are three possible commands: GROUP, PN, and MOST. All commands and
switches may be abbreviated so long as they are unambiguous (one letter
will do). Cases are ignored. The default command, described above, is
equivalent to GROUP without an argument. If an argument is given, then it
is matched against the leading characters of the various group names to
select one (e.g. the command "g hand" will retrieve data on the Hand-eye
project).
The PN command with a programmer ID as an argument will get data on that
individual alone. Without an agument, it exhaustively lists the accounting
data in order by PN, omitting null entries.
The MOST command without an argument lists the 20 heaviest users. An
integer argument causes that many of the heaviest users to be listed.
SWITCHES
The /DETAIL switch has effect only on the GROUP command and causes data
for individuals in each group to be listed in order of decreasing cost.
The /FILE switch will subsequently ask for a name and direct output there.
/SPOOL and /XSPOOL do what you would expect.
The /RAW switch is mostly for debugging and causes raw accounting data to
be printed together with a (rough) explanatory heading.
BUREAU Computer time accounting (old style) Oct. 1975
Programmer: LES
Source File: BUREAU.SAI[F,ACT]
To find out how much computer time has been used by any given group
in the period 1971-77, say
.R BUREAUCRACY (actually, just "R BUREAU" will do).
The program will ask for dates, PPN lists, and output form. If you
give null responses (CR) to all requests, the program will
automatically show a summary of computer utilization by project from
the beginning of the current year through yesterday.
Data covered include number of PPNs, number of logins, job hours, CPU
minutes, core K minutes, and "Doubloons" (an approximate measure of
overall cost on an arbitrary scale). The entries are in order of
decreasing doubloons, except that "All others" is always last.
DATES
Alternatively, you can "roll your own". The raw data is stored by
PPN for each month over the past year and for each year back to 1971.
When it asks for dates, you can say something like "Jul:Oct", which
may or may not work. If the current date is December, this gives
you data for the current year. If the current date is May, last
year's data is used. If you say that in July, August, or September,
it will simply complain. It doesn't hurt to ask.
If you say just "May" then you get data for the last instance of that
month only. If you say ":May" you get data from 1 January through
May. If you say 72 or 1972, you get data for that entire year. If
You mention the current year, or if you just hit <carriage return>,
you get year-to-date data.
PPNs
When the program asks for PPNs, you can say something like:
Bureaucrats:JMC,LES,TW; Bad guys:REG,[SPL,SYS]; Classes: [206],[225]
which will gather data on three groups, separated by ";". Labels (one
or more words ending in ":") may appear anywhere in the group list.
If you omit labels, the groups will be named "Group 1", "Group 2",
etc.
More generally, the following elements may appear in PPN lists:
group label:pn,[pj],[pj,pn],[*,pn],[pj,*],@file,@@,/SUMMARY
Nothing need be capitalized. [pj] is of course equivalent to [pj,*]
and pn means [*,pn]. If a given PPN qualifies for membership in more
than one group, then [pj,pn] takes precedence over [pj,*], which in
turn outranks [*,pn]. If you mention exactly the same thing in more
than one group the program will grumble, but will ignore conflicts
and continue.
Now about the "@file" gizmo: This lets you compose a horrendous list
as a text file and gobble it into the middle of the line. The file
name may contain a PPN. Any TV/E directory or SOS line numbers will
be ignored. While the on-line response is restricted to one line,
the text file may contain many lines. It will be read as if the
carriage returns don't exist. You can go indirect any number of times
and any number of levels, though string space may freak out
eventually.
The "@@" form says "go read the telephone list". This will assign
everyone to groups on the basis of project affiliations given in our
telephone directory. Individuals who are in more than one project
are arbitrarily pushed into the first one on their list. People
without a listed project are dumped into "Miscellaneous". Of course,
this still leaves a few "outlaws" who are not on any of our
authorized user lists. You can precede the "@@" with one or more
group lists of your own, which will take precedence over the
directory groupings.
OUTPUT
After the data is generated, the program repeatedly asks for an
output specification of one of the following kinds:
<blank> type a summary
* type detailed listing
S spool a summary
S* spool details
<file> save summary in file
<file>* save details in file.
. loop back to respecify PPNs and dates.
On reruns, the null reply to PPN and Date questions means "just like
last time". Thus, you can easily ask for data from a different time
period with the same cast of characters, or for the same time with
another group.
XGPTYP Converts XGP file to text form Dec. 1975
Programmer: REG; modified by HJS & LES
Source file: XGPTYP.SAI[CSP,SYS]
XGPTYP converts an XGP file into a straight text representation of the
various XGP commands. Handy for debugging document compilers. It prompts
for a source file name. The default source file extension is "XGP".
Output goes either to a destination file or, if none is given, to your TTY.
PARRY A model paranoid Sept. 1977
A natural language "understanding" program that pretends to be a paranoid if
you pretend to be a psychiatrist. To run, say "R HARRY" and answer the
various questions about options any way you like, but type in upper case.
One good set of answers is: "Y", "M", "N", "N", "Y", "N".
Programmer: KMC, BLF, etc.
Source file: unknown (in MLISP)
Documentation: William Faught, "Motivation and Intensionality in a Computer
Simulation Model", Memo AIM-305, Thesis: Ph.D. in Computer Science,
September 1977.
RSL Service Level Reservations
Programmer: Jim Stein; modified by REG & LES
Documentation: Monitor Manual appendix (SAILON 54)
Used to reserve service level and certain devices, as described in a Monitor
Manual appendix.
COOL Summarizes temperature & computer uptime. Jan. 1978
Programmer: LES
Source files: COOL.SAI[T,ACT]
COOL retrieves and summarizes temperature and computer uptime history.
Source files are maintained by the THERMO phantom and exist from
1 January 1978 to date.
COOL asks for the date range, which can take many forms, e.g.
23 (the last occurrence of that date, this month or last)
Feb (entire month of February or, if in February, month to date),
78 (all of 1978),
2:5 Jan (2nd through 5th of January inclusive),
0 or <null> (today),
-1 (yesterday, -2 for day before, etc.).
Any combination of <date>:<date> can be used, with at least 3 letters of
the month given. COOL will try to do something sensible even if you leave
some elements unspecified, such as the year.
You can use one-line commands, e.g. "R COOL;-6:0" retrieves data for
the last seven days.
OUTPUT
COOL normally lists the system downtime and availability (%). Next, the
number of system reloads is given, if any, as well as the mean time
between reloads, the total number of service breaks, and mean time between
service breaks. A "break" is defined as either a reload or a pause.
Only pauses longer than 2 minutes can be detected and some up to 12
minutes may escape detection.
Next, it lists the high and low temperatures and the times at which they
occurred, and the mean temperature. Temperatures are given both in
Celsius and Fahrenheit and are normally outside air temperatures, but can
be switched to the computer room temperature (see below).
SWITCHES
Switches may be added to the end of the command line, preceded by "/".
Switches may be abbreviated to as little as one letter.
/INSIDE gives computer room temperatures rather than outside,
/BREAKS gives detailed listings on all service breaks (reloads or pauses),
/-BREAKS suppresses all information on breaks, including the summary,
/SPOOL both displays and Spools the requested information,
/XSPOOL both displays and Xspools,
/FILE puts a copy in a file, after asking you for the file name.
/TIME=<interval> lists temperatures at the specified interval, which
defaults to 10 minutes (the minimum). For example, "/T=2:00"
lists temperatures at 2 hour intervals. Intervals greater than
24 hours cause only the temperature at midnight to be listed.
If you use more than one of the SPOOL, XSPOOL, or FILE switches, it will
use the last one given.